Final update and tested version