added upload() and param()
inline testing of before()/after() no longer works because of call change