update to prototype-based oop