now support passing update classes and explicit input instantiation