borrowed a bit of Bucket documentation and added it as docstrings to basic.py