throwing in solutions for 1-4, for the record