complete 'backword' implementation