refactored with accessors