cleanup
refactored