converting to be more modular