changed assertProducedExactly assertion so that production order doesn't matter
interface support
added method signature properties
method signature properties storage