mostly done except for content