split require and option module into two files