separate shared feature from Disassembler and make Analyzer abstract class