cleaner API for clients