start on optional header/trailer logic in framework