generate prototypal inheritance