a few modification just for readability