adding foreeableAction class and ActionFinishedException class