missing substitution
some typing rules
simplify