some changes
refactored