ENH: Initial version. Not tested yet.