yet another datawire refactor, but i like this one better