Add OO interface and update docs