split interface from abstract class
adapted to head
added settings
adapted to head
corrected class name
overwrite abstract class with original interface