separating code into various elements for more flexibility
organizing code in main for mor order
minor changes
Resolving conflicts betweem improve_opencv_code branch and sequential_test branch
some code cleaning