add a bit more APIs