Initial Rewrite

I rewrote the expand/collapse functionality as an example, I see you were also using storage, but haven't worked that back into the code base.