Rearrange files into a more logical structure, closes #2