better for restrcutred text
error handling