optimize the arguments in build method