base "class" for non-ES6 OO JavaScript
Until I finalize the different recipes, it might not be a bad idea to build them incrementally.