Initial commit. Few ENUMs and class structure.