add error guard