works, slowly
profiled