This is the initial dirty code but working code. It need to be cleaned up and class functions filled out.