First commit. Everything has been tested and so far it is working.