Builder pattern in commands API.

Avoid getters in builder object and 
simply chain the construction of result.

I think we should follow builder pattern more precisely since it is going to be part of API.

as for the chaining I do not have too strong opinion.