better functions
...
...