integrate david boucha's requirement improvements