Reorganise API / See #4, #2,