ok, I'll remove the abstraction