I'm not sure why it's better to use this boilerplate rather than having cursor create it from scratch?