support component as parameter