support adjusting time; abstract time object and create conversion methods