Add KeyCheker, implenet some logic in Core