framework update

rewrote again