Add some doc.
Implement selection protocols.