switched server-ctrl to use callbacks