More functions

I think this can be merged. I enhanced this branch in enhanced-update