Move impls around a bit for better arch