revamped API