refactored structure, added definition-header