implement Buider in progress
implement Builder