refactored class duties