new generic server class