Using splitAt instead of drop and take
Using strict Maps and foldl', learned about repeat function