move other implementations to the top