added server listen + callbacks