implemented more update functions