First draft of Type and some refining