anchor.diff:  	levels += levels_by_name["[z]"]
   
   /datum/controller/process/open_space/doWork()
  -	if (world.time > fast_time)
  -#ifdef DEBUG_OPENSPACE
  -		world << "Calc fast OS"
  -#endif
  -		fast_time = world.time + 5
  -		var/datum/ospace_data/current = null
  +#ifdef DEBUG_OPENSPACE
  +	world << "Calc fast OS"
  +#endif
  +	var/datum/ospace_data/current = null
  +	for(var/i in levels)
  +		current = i
  +		current.calc_fast()
  +
  +	if (world.time > normal_time)
  +#ifdef DEBUG_OPENSPACE
  +		world << "Calc normal OS"
  +#endif
  +		normal_time = world.time + 600
   		for(var/i in levels)
   			current = i
  -			current.calc_fast()
  -
  -		if (world.time > normal_time)
  -#ifdef DEBUG_OPENSPACE
  -			world << "Calc normal OS"
  -#endif
  -			normal_time = world.time + 600
  -			for(var/i in levels)
  -				current = i
  -				current.calc(current.normal)
  +			current.calc(current.normal)
   
   /datum/controller/process/open_space/proc/add_turf(var/turf/T)
   	var/datum/ospace_data/OD = levels["[T.z]"]
  
positive.code: /datum/controller/process/open_space
  	var/slow_time
  	var/normal_time
  	var/fast_time
  
  	var/list/levels
  	var/list/levels_by_name
  
  /datum/controller/process/open_space/setup()
  	name = "openspace"
  	schedule_interval = 10 // every 2 seconds
  	start_delay = 12
  
  	OS_controller = src
  
negative.code: 
  	slow_time   = world.time + 3000
  	normal_time = world.time + 600
  
  /datum/controller/process/open_space/proc/add_z_level(var/z)
  #ifdef DEBUG_OPENSPACE
  