finished initial answer to question 1, approach 2 and 3