pass events to recorder.
abstract subscription/unsubscription process on card.
delete unnecessaries.
make subscription functions into decorators.
make Chainable a builtin decorator.
use built-in Chainable.