Rewrite some stuff
update dependencies
add missing class