* refactored code, renamed classes to have more appropriate name,
* formatted code (don't forget to ignore whitespace when make a diff).