further revising api