more semantics types kinds etc