Added generic interface to component builder