modified to use google coding format