Rewrite to include smarter init and Ajax/dynamic elem support