re-imagined entire project, now much more flexible and more of a boilerplate tool