subdivide class unique responsability