refactor LOL