Implement required characters, defaults loaded from a file, some refactoring, add appcache.