updated to use programatically