moved onResult to mixin