split build into more components