added functional JS source