full working implementation of Smith-Waterman