refactor from custom locator to java 6+ service locator, additional fix/cleanup