add dynamic build