Assignment 5: preliminary version