Made some design decisions, reorganized files.