Implement high level api