separated code client server