Reorganization of SILPA code

This PR contains reorganization of SILPA code to follow some structure so that extending it will not cause any problem.

*Don't Merge this yet it will be done when every thing works fine*