refactored guld structure