make push and pop take in a C**
refactor adding to freel to use push
include input in debug trace