better type determination from the types