make it possible to either augment or to use prototypical inheritance