finished rule APIs
serialize before unlocking