make sure that parameterized constructors get the most specific type