added lots of stuff. v2 basically