typehinting implementations if there are no real extension points