completed knock method
fixed merge conflict