overwork MAC subsystem

* now it's modular
* add some sample mac implementations
* test mac performance