Added validation annotations
Refactored error handling and messaging to match V2 spec