Commented and cleaned Version 4.20