organizational overhaul, OO style strengthened, public vs private methods, variables dilineated as much as possible in JS