trying to choose the most specific type too resolve type ambiguities