~ slightly adapted