move `as`, `given` to root state definition
elaborate on docs