- changes public interface to make it more testable
- improves locale preaching code