Major code rewrite. Release!