exceptions removed and annotations added
current state