Separated low-level api from the high-level api