Moved implementations here