Initial commit, ugly code, I know.