Much cleaner API