The process I am trying to implement is the most logical and generalised one, so please suggest something along the line.