map and inject for difference of squares
create sub methods for leap