slightly cleaner API