cleanups in BCode backend
don't copy the name when invoking subName
refactor btypes in separate component