more cleaning of implementation between classes