implement most of spy-feature: object-spying