The thesis work can be subdivided into two major parts: the theoretical work, and the practical work. I will start with the theoretical work, since in the course of it I might discover some new techniques and algorithms that could be applied in the practical work.