more consistency across the methods, caching result data is now the norm. General clean-up and some misc bug fixes.