add doc comment
[api request] should be immutable class