Added faster, non-directional functionality.  Some cleanup