Added extend-abstract and extend-implementations