makes api a little more flexible