Progress

This is a PR for what I have so far. It shouldn't be this big, but I'm submitting a PR anyway.