api changed: provide seperated client module