Initial commit, code is slightly working.