Refactored to comply with the new Generated API