refactored stuff
refactored