some changes to adhere to SO format