initial commit, refactoring underway, see the SlingshotController to get
an idea of where it's going.