Memory Management

Value objects (e.g. a Color) should be made copyable and assignable and be passed by value.