このあたりはやはりenumrable moduleをうまく使わないとだめです。