separated client code