Initial commit, a lot of cleanups to be done for each file