hlim10 jcheng26 : 
1. Refactoring
2. Removed classes not used anymore.
3. changed Interface