worked on problem 17 more. included scalaz for applicative (may/may not need - TODO).