added self diagnoses
added server factory