more initial implementation (and terrible unhelpful commit messages from the start of a project