Expect things to be rearranged as I go. It's not just a personal project, it's a learning experience.