move signature generation into a dedicated handler class