a whole lot of expansions
added success tracking
switched from forwardpointers to backpointers