Initial commit, functioning but with plenty of room for improvement.