completed lock.ml