refactor monitor client for more compact/reusable client code