WIP modularize
more modular