This time really refactored it.