Actually return an instance of a different type