built out server functionality