Added lot of defuns, need to revisit, removed duplicates