add prototypical interface;