First pass at CLI app. Needs tests and more dynamic capabilities.