it seems that you would use relativedelta for everything (except nanoseconds)? is that right? how does this solve the problem?