differentiate between raised and returned exceptions
remove context free eval function
First version that can be considered working.