done, need to divide server into 3 files