Abstract component