Added some higher abstraction stuff