Lots of changes, starting from scratch. Begun with header work