error handling for expressions done