throwing stuff at the wall, this API is plenty weird