Simplify methods by decomposing them, and use really explicit method names

This is a pretty opinionated refactor, but I like super simplified methods, and really obvious names (especially when mucking around with anything vaguely metaprogrammy) YMMV - @Bantik, thoughts?