reformatted to look a little less fugly