forked from: OOP way of prototype extension

