make the API more like Qt's API