Extracted Abstract class