moving some stuff to be more modular