lab2, lab3, lab4, prolog