partial update; uncompiled and may not run!