Added abstract class for factor elements