played around with recursive functions