manually updated version