refector classes so they better interact with each other