OO implemenation is partially functional.