updated to final version