complete server part