Using instancetype keyword