crazy refactoring and correct bugs