First real commit, program logic there but not all tests yet.