moved to a more modular design