config class & refactor builider