Complete implementation without test