refactored reachability
merging stuff