adds doAfter()
todo