error checking and specifications 240828