split up server-side code into smaller files for maintenance purposes