following go convention for returning error