demo mostly done