ENH: add main code
ENH: add perf tests
ENH/TST: add unit tests
ENH: add docs