Use adapted types for the different result types. This makes it
easier to have adapted output formatting and means there are only
result fields that are filled.
Use a directory for the submodule where the __init__ file contains
the public API. This makes it easier to separate public interface
from the internal implementation.