update dependencies and add some implementation stuff.
also update readme