improved for more compatible