use `before` for preparation