tested, small changes