implement base