probably too expansive and too slow