full working updated