remove lazy `now` property
simplify `defer()`
use animation base class