use require js to organize code