add error codes, don't use strings anymore