Actually I think it's different for every stage depending on the operation that stage does (i.e cropactivity calls <code>.crop</code> on the current bitmap and publish will do something completely different). I made it abstract because I need to force every funnel to have a nextStage function or else the button will error. It also helps with disabling and enabling the back and previous buttons via the FunnelActivity because now I can specifically detach the nextStage function from the next button.