object oriented javascript framework