Fix creating constructor in inheritance (more than one abstraction level) +tests