mostly broken but initialisation of components is starting to take shape