refactoring + stringBuilder
Better validation and