Fleshed out sigs API quite a bit (with some guesswork, no docs on this API yet)

Signed-off-by: Martin Evans <martindevans@gmail.com>