assignment commented throughout