Added some abstraction.