first stab at some better settings

TODO:
* update documentations
* make sure operations are safe