overhauled btree + added documentation