added abstract class for fingerprinting modules