add npc server implementation