changed View API to use a builder
updated ui code