Javascript OOP library