uses less memory