step 3. accessors and mutators