that looks like the right set of operations to me. I haven't contributed myself, but that matches what most open source projects ask for. if you run into any problems let me know and I can take a run at it.