Implement new algorithm