some header/footer code moved to parent class