edited for formatting