upgrade and merge with caarlos0/up