need to add commands and modularization