private setter
set fields
dont set final fields