refactor feedforward to minimise recurrent duplicate problems