generalize signature creation