move computation to server