enhance position generation