First commit, it will be a very nice project, but right now it's a mess.