making a bit more modular