added validator model; fleshed out observer