fixed a typo
improved type hinting
hoge
changed traits and interfaces to abstract classes
added travis.yml