Added adapter pattern.
Changed directory structure.