make marking __monitor optional, add collection hook