improved return values