changing the api a little bit. Hopefully to make it simplier