use more type annotations of Example
implement new splitter