client sketch (fleshing out)