working away
reshaping the api to be simplier
worky work
worky work work