for CSE 594