another stab at reducing complexity