updates + implementations