a few changes
refactoring