use domains for better error handling