avoid ~ and ^ for compatibility