added server `ready` function