just using instancetype for init method