Source code translated from spanish to english.