move code to submodule for easier testing