added the keyable interface