Get the types right in preperation for actually putting the values into the list.
take/gather combo actually works
Port over while and if.
take pushes the argument