Committing all of lab4. None of it has been tested yet.