acts_as_tree
tree!
this version includes closure_tree, just specify :tree instead of :associated