error case is handled by validation