yeah make things a bit more modular