Edited to meet requirements