visual frame work