finished js oop