added netserver func