refactor the drawer class