base constructor
methods prototypes