* middle
* restruct with chan. done.