Functional version complete.