conform to conventions
use standard error api