update... close to finished