more declarations
major restructuring