add first draft of require