deal with types better on sig ctor