almost finish, big update