akl-toussain broken to smaller methods