adding custom init method - if you define it will be called
defining self so when extendingg you have  a functioning this pointer