retain-recall semantics project (moved from google code)