enabled knocking, added func restrain