begin modularization
make modules actually work