second revision
2nd revision merge