making things a bit more modular