js framework OOP