Adds some abstraction