intial version with list of components