expanded and updated