stash
merged different diverging implementations. Added some ease-of-use implementations