Fully refactored #77
Fix bug #77
Rename class.