This is the most up to date code with CLI code + functions in header files