Is there a logical ordering to the return codes? Should probably be constants.