use stop instead of return, pass contract as argument