abstracted result handling