refactored structures