Implement from scratch.