Initial idea for component builder