add compatibility for 2 and 3