initial server side implementation