introduce DatePeriod and small change
initial commit