a OOP javascript project