refactoring
fixed #5