This abstraction could be better.