Finish refactor with error messages and validation for strings and decimals