restructured to accommodate server