Initial commit, really ugly but functional.