cleanup and updated
updated with work modification