Nawqaan 88

This implements both NAWQAAN-88 and NAWQAAN-89.
Nice refactor + enhancement!