クラスベースだがプロトタイプベースでやろうと思えばそれっぽくもできる。