error, end handlers.
abstract delegation.
take, takeWhile
use delegate more.