pushed serve into its own class