Implement high level interface