updted return type