make server optional