making it more modular