updated form implementation