Object Oriented programming and fast computation techniques in Maud, a program for powder diffraction analysis written in Java