performance refactor > 10000 per second