move types into own package and stop the regex madness
rename createSpec to normalizeSpec as that is what it does
no need to extend twice, remove extrenous extend