implementationの上のusesと下のusesは何の違いがあるのでしょうか?