work with Radu
generalize reflection overloading resolver