made the API a little cleaner
now with nicer api