made it a bit more SOLID