modified and completed