added/debugged/updated based on Introduction