Added more explanation in the source.cpp