clarified canonical forms; also canonical headers :p
added substitution