Add Signer class and its tests