more update. possibly final