callbacks communicate properly between fragments and activities <rant>I don't like how this works. There must be a better way.</rant>