add docs, fix bug