Adding files from previously completed project. Needs unit tests and demo built.