A flexible multi-purpose level editor