single script app broke into modules