decorator pattern 6 files
kubota committ