Submodule wrapping courtesy of @sbinet