make static methods to attempt to decouple inheritance