nearly done. can sign and read signature to verify
add cache