Added a universal-argument implementation.  Unsure if it's exactly how I want to do it.