use textproto; reimplement protocol parsing
check for existance of key before returning
use a struct to hold cache items instead of just a string