add functional.js