add moment object
moment object is awesome
progress in generality
before refacotr
moved code to factory
remove trace