add dynamic component