map() and check results.
this is hard to maintain, extend, and it doesn't have any error handeling.