TODOs include filtering, and a unit test. R=rsc APPROVED=r DELTA=280 (249 added, 1 deleted, 30 changed) OCL=35262 CL=35348