Another major refactor moving towards making CLI