moved selectType out of type system and into bfb
seperated types into different structures based on type system