I don't understand why the instance of TagUtils has been made final: private static final TagUtils instance = new TagUtils();
Isn't the logic behind having an 'instance' of TagUtils so that if someone want to change an aspect of TagUtils behaviour they can extend it and override a particular method? Otherwise why not just have a bunch of static methods in TagUtils? Does anyone have opinions on changing this so that TagUtils implementation could be customized? Niall