Initial commit. So much to refactor...