extendable object and class for js structure
add flyweight library