server: final version