added basic require define system