Implement Abstract

abstract need its custom implementation to match the behaviour before v3