more work
adding new cleaner API