ADD: Added the beginnings of function composition. Everything is O(k)