add suck method to convert sink to source using synchronous threading; refactor LZW test case