Author: Eliecer Salesman.