exception handling, validation, rest design