Added API docs. Cleanup. Added containsBy()