based on emberJS, requireJS