better type information extraction