Adding viewmodel facotry and updating a bunch o stuff.
Updating readme