Added full implementation.