updated v2. In progress.