Completely seperated type and symbol generation. Should fix a lot of bugs, but is not yet 100% complete.