moving to instancetype for all init methods