Working on "high level" api design... (initial attempt)