error handling now handled by helper