added forward and reverse motion