updated and correct hw03, all parts