initial commit with all the code