optimize accessors without defaults
optimize constructors/destructors