Finished Functional Sets. Map might need a little work, feels too imperative.