Total reconstruction Search(takeaway it to abstract class and take it universal)