refactored
more changes