add first implementation for back-propagate