implemented print & lock & critical