semi done assignment2