use server_argv::type instead of virtual function