Add lots of docs and allow indexing of bag and improve api