don't use cdn and extract controller to js file