added IntervalAble trait