Add better explanation and documentation