Added hash to all enums, added documentation