make class public
create reusable VObject editing form
keep track of ID, save new if id is null, update otherwise
add VObjectForm to proj
use VObjectForm
use VObjectForm
fix merge conflict