Refactor and improve performance

Based on these benchmarks: http://stackoverflow.com/a/11456509/209190,
each is faster than inject and reads just as clearly, if not better.