- Changed the URL from the wikipedia to Codeproject as it explains better the different principles.