Refactor

using ChanNeuron interface to avoid repeating code.