this return value will violate with spec