put everything before this in a `setup` function