First commit

That's a lot of code, but that's because Git doesn't work at the uni.