Greetings fellow developers and/or Android enthusiasts,
I wanted to take a moment to start a thread on for the Android application (2.2+) Backitude: Configurable Background Location Tracking. I would like a place to discuss the app publicly, discuss troubleshooting solutions, bugs, or motivate ideas and improvements.
Check out the Full version, ad-free available for free in the Android Market/Google Play store:
Download here: Backitude: Configurable Background Location Tracking
EDIT: Google Latitude shutdown their API on Aug 9, 2013 which completely changes the makeup of the application. Its sole purpose was to send locations to Google in order to maintain an accurate and timely history with Latitude. Now, it will be more geared towards keeping its own history and integrating with a number of systems or personal custom servers.
Backitude provides a bundle of extended features and functionality for updating Google Latitude locations from your Android device. If you are a Google Latitude user or once had interest in the concept of Google Latitude, then Backitude is an essential addon. Background gps location updating at your own specified time interval is now within your realm. Backitude expands your updating options, accuracy, and even allows you and your friends to force updates on eachother when needed, all seamlessly behind the scenes.
I created this app about a couple years ago to address two issues: I wanted to fix the short-comings of Google Latitude and make it a plausible application for users to enjoy and utilize effectively and efficiently. Also, I wanted to provide Google Play Store with such functionality free of charge. At the time, no such free application existed.
Google Latitude is somewhat inadequate on its own, but this is of no fault of the Google developers. They designed the application with battery efficiency as a number 1 priority. The conserve battery, Latitude on its own does not update locations in the background using GPS for accurate reporting. Instead it relies on Wi-Fi and cell tower triangulation to determine your location. Since many users refrain from enabling Wi-Fi when not stationary in their own network, or since Wi-Fi cannot be obtained while travelling, the resulting location updates are large, inaccurate "blue circles" on the map. Cycling through your Latitude friends, I mostly would see large, city-wide, inaccurate location readings- like I said, therefore truly defeating the purpose of Latitude. Latitude also fails to give the user any configurable options to location reporting. What good is a location history if majority of the values are city level and inaccurate? Backitude, to the rescue.
Backitude was designed to address all of this and put the power back into the hands of the user. You have complete control what, when, and how to update. Power can be a dangerous thing however. Google chose not to give the user a chance to configure their settings and risk draining batteries and having Android or Google products labelled as "battery drainers." Backitude is for the intelligent user, to know how to manage their battery, know their priorities, and know the effect of such functions. GPS polling is a very battery-intensive maneuver!
The final issue and gap Backitude inspired to bridge is updating a friend's location. It is great to have control over your location updates and allowing your friends to see exactly where you are, but what if they haven't updated recently or exactly when you needed to know their location? Backitude has an answer for that. "Fire an Update on a Friend" is the newest feature which utilizes SMS messaging to receive requests from other Backitude users. If your friend is also using Backitude and has this option enabled, you can send a request to their device which will in turn trigger an update at that very moment.
Additionally, there are many, many more features that all serve to give the user complete control of Latitude updates and battery consumption (in the context of Latitude updating). Thank you for checking it out, and I look forward to supplying any troubleshooting information right here for all to find, and hear ideas and feedback from those other enthusiasts out there.
Troubleshooting Topics
Location Updating using Backitude: the application utilizes oAuth2 authentication which is very easy and very convenient for the user. The user is able to grant permission for Backitude to integrate with their Google Latitude account at a click of a button without even having to enter their credentials.
The issue is, some users on some devices have experienced trouble obtaining this permission. It is important that users do one of the following before using Backitude, however, for some users it is required that they do both:
1) Use the Maps application to "activate Latitude for this device" by signing into Latitude. (Additionally, it is suggested that the user change their Latitude location reporting to "set your location". By manually updating your location and selecting an arbitrary position, you will prevent Latitude from wasting unnecessary battery life on updating your location, but still allow your friends to see your location. Backitude can do all your updates for you instead.)
2) From a PC or computer, visit Google Latitude and sign in from your browser. (And not from a tablet or smartphone browser) I do not know why this is required, but for some, to fully opt into the Google Latitude agreement and conditions, this is required.
After doing so, 99% of users are able to update using Backitude. An extreme minority, still have to perform some additional steps. This would include resetting your Google 3rd party authorizing sites, by revoking access from all, and then trying the process over from start. Signing into Maps. Activating Latitude. Installing Backitude..etc Any issues, I am always available via forum or email. Thanks!!
I just started using this app a few days ago after realizing how often Google Maps is polling for location information just to update latitude... Hundreds of times a day, even when I'm not moving!
So far, I'm liking what this app has to offer
Troubleshooting Topics: Location Updating using Backitude
If all else fails to get you updating, the following detailed description may help get you going as a last resort. Again, I'm not sure why oAuth2 can be so difficult for a small handful, and so convenient for so many others.
Start fresh by trying the following steps to reset your Google Latitude permissions
* From your android device, launch the Maps > Latitude application and Sign out. On the latest version, this is accomplished by going to Latitude > Menu > Location settings > Location reporting > Latitude location sharing > Sign out of Latitude
* Next, go into Android > Settings > Applications > Manage Applications > Maps and click the "Clear data" button.
* Similarly, uninstall the Backitude application by completing the following: Android > Settings > Applications > Manage Applications > Backitude and click the "Uninstall" button.
Now, follow these steps from a PC browser to remove access (so that we can then add them back)
* Visit google.com
* Sign into Google using the account you are trying to configure for Backitude
* Go to Google Account settings, or click "Account". (I will post a link directly there when I have the ability too)
* Scrolling down, you see the option to "Visit the previous version of the Account settings screen" which takes you to My Account.
* Under Security, select the link for "Authorizing applications & sites" (accounts.google.com/b/0/IssuedAuthSubTokens)
* Revoke access to any applicable "Android Login Service" entry including those such as "Full Account Access" and "Google Latitude"
Everything is now successfully reset, so perform the following steps in order.
* Sign into Latitude from a PC browser. (It is very important to sign in from a PC browser and not your android device at first). This is required by some devices for authentication purposes, to "opt" your Google account user into Latitude.
* Enable Google Latitude on your device using the Latitude app. If multiple accounts exist on your device, you may have to select the appropriate account by going to Maps > Menu > Settings > Switch Account. Then, or otherwise, sign-in to Latitude from your android device.
* Finally, you can try to re-install Backitude and successfully update your location to Google Latitude.
And that always seems to get the last 0.01% of users updating successfully who couldn't before. Annoying, yes!
Other similar 3rd party Latitude apps appear to be using a variant of oAuth1 authentication, which requires entering your password. I have contemplated implementing the same, to avoid this issue but perhaps future versions of Maps and Android will better activate permissions on those devices.
Backitude: My settings
How do I configure Backitude to run? Personally, with battery efficiency in mind while leaving the highest priority features enabled.
Enable Service: on (this is essentially the on/off switch)
Advanced Settings
Set Priority: Wi-Fi, with GPS/Tower Triangulation backup (One of the most overlooked but favorite options. This setting will abort GPS polling if a Wi-Fi network is present and the Wi-Fi location is accurate. So, in a real-life situation, my phone is indoors at work or at home with Wi-Fi enabled. GPS is enabled but not going to be able to get a fix indoors. Instead of polling for the entire extent of the Polling Timeout, Backitude will abort polling, and update using the Wi-Fi location value, which is all it ever would've gotten anyways. Beyond that, if I am outdoors and away from a Wi-Fi network with the same setup, the GPS will still poll and run its course as normal.)
Settings
Time Interval Option: 30 minutes (if my friends need a more recent update, they can ping me and have backitude fire off an automatic update seamlessly in the background)
Location Polling Timeout: 15 seconds (The longer GPS is allowed to run, the more potential battery gets burned if you can't acquire an easy fix)
Latitude Re-Sync Rate: off (this feature is only needed to prevent Latitude from overwriting your Backitude location update. However, I put my Latitude location reporting to manual so Latitude is no longer detecting my location. Battery saver too!)
Min. Change in Distance: off (I'm not a Location History keeper, so eliminating repeat updates is not a concern for me)
Location Steals: On (This is one of my favorite features. If you're using an app such as Maps, Navigator, or even the Internet, which polls your GPS, Backitude will steal this location and use it to update your location. The battery-intense function is already on-going thru another app, you might as well steal the location value and update your Latitude at very little expense.)
Accurate Update Only: On (You have to think about location "circles" for this option. Circles coming from inaccurate location readings. If your previous location value was more accurate then the current location reading, and the previous location is within the location perimeter of the newest location, it will repeat the more accurate location.
Real-time Enabled: Off (This is for individuals wanting to update at a faster rate when charging their device or docked. Personally, I just change my update interval when I want to update faster)
Real-time Interval: n/a (Users tend to want to poll location and update at a faster rate when their device is docked and battery is no longer a concern)
Real-time Timeout: n/a (When real-time updating, there is a separate timeout value for GPS polling versus the normal timeout. Users may have a different preference if their device is docked so there is a separation configuration for that)
Push Enabled: On (Allow friends to force an update to Latitude on my device by simply texting "Force Backitude update". I can get away polling at a slower rate and save battery because all my friends and fellow Backitude users know they can force an update on me when needed)
Display Message: off
Display Push Notif: off
Status Bar Icon: never
Display Update Message: off
Display Update Failed Notification: off
EP2008 said:
I just started using this app a few days ago after realizing how often Google Maps is polling for location information just to update latitude... Hundreds of times a day, even when I'm not moving!
So far, I'm liking what this app has to offer
Click to expand...
Click to collapse
Thanks. I'm currently working on fixing a couple known issues, and hoping to get a new release out this week. Nothing earth shattering though. I noticed you were running ICS... have you noticed any issues? I have not tested ICS compatibility yet, so I was always curious. Using a Bionic myself, I'm still hoping to get an update later this year and try it out myself. Thanks!
backitude said:
Thanks. I'm currently working on fixing a couple known issues, and hoping to get a new release out this week. Nothing earth shattering though. I noticed you were running ICS... have you noticed any issues? I have not tested ICS compatibility yet, so I was always curious. Using a Bionic myself, I'm still hoping to get an update later this year and try it out myself. Thanks!
Click to expand...
Click to collapse
No issues that I've seen.
I did have a bit of frustration when testing it as I had it set not to update unless my location changed more than 100m, so when I fired a manual update, I assumed that would force an update regardless of the location setting. It wasn't until after I turned that setting off did the manual update refresh with a new location timestamp.
Not a huge issue, but for some time I didn't think that the app was working because the timestamp on the history log never changed after manual updates.
Sent from my Galaxy Nexus using Tapatalk 2
EP2008 said:
I assumed that would force an update regardless of the location setting.
Click to expand...
Click to collapse
I never thought of that. That is probably a fair assumption. I may have to consider re-working that logic, so that like you said- if "Fire Update" is launched, you do not consider skipping the update because of minimum distance rules. Thanks!
backitude said:
I never thought of that. That is probably a fair assumption. I may have to consider re-working that logic, so that like you said- if "Fire Update" is launched, you do not consider skipping the update because of minimum distance rules. Thanks!
Click to expand...
Click to collapse
The reason I made the assumption was because I use an app called FolderSync, which helps manage cloud file storage services. With it, you can setup rules to sync your files, like what time a backup should be made, if you are plugged into a charger and if you are on wifi, etc. The app has an option for the user to initiate a manual sync, which basically ignores all scheduling rules over the users desire to sync right now. That's why I thought it might be the same for Backitude.
EP2008 said:
...The app has an option for the user to initiate a manual sync, which basically ignores all scheduling rules over the users desire to sync right now. That's why I thought it might be the same for Backitude.
Click to expand...
Click to collapse
I like the idea. I am going to change that for the next release. The settings for Backitude are pretty intimidating, even for novice Latitude users. I want to make it as user-friendly and straight forward as possible. Thanks for the help!
Still no way to see other people on Latitude? I'm sure it must be an API you don't have access to or something of that nature, but I still don't get the point of this app if it's "write-only". You can't see anyone, only they can see you.
You're correct in that the API is very limited. It only allows you access to your own location and location history, so there is no way to retreive your friends' locations, or even your list of friends. The purpose of Backitude is not to replace Google Latitude, but simply help correct its short-comings. Using backitude, and having your friends use backitude, ensures accurate locations, battery efficiency, and a means to update your friends' locations when you need their location. Once configured, Backitude runs in the background and can remain fairly transparent to your day to day Latitude use.
I'm using your app too in ICS 4.0.4 if you need some feedback. It's working quite well, even better than the other one! Keep the good work.
(Currently testing 2.7) Here is the change log, let me know if there's any more bugs I need to iron out last minute. Thanks!
Backitude: Update release 2.7 Changelog
1. Reported Issue: Backitude just stops running after a couple hours of use. (Unconfirmed but occasionally reported bug) I haven't been able to duplicate, however this could be the result of Android's memory management as an operating system, or the result of a Task Manager, task killer type of process. Users who experience such an issue should add Backitude to the ignore list on their task managers. However, I have made some changes in the code that may help.
2. Enhancement: For IOException, SocketTimeoutException, Read timed out, Unresolved host name. Backitude now has a re-attempt feature that will retry update after 60 seconds from a failed update due to these network congestion exceptions. (As directed to do by Google)
3. Enhancement: Implemented notification for users who cannot update due to permissions problem. (403/503 exception) Instructing user to first login to Google Latitude from a PC browser to "opt user into Google Latitude" and/or reset their Latitude location manually again. Google sometimes implements new terms and conditions and it may be required to re-opt into their agreement.
4. Enhancement: Updated Java Client libraries and Google Latitude libraries. I am hoping this shows improvements with efficiency, speed, memory, and issues.
5. Issue: (GUI) Steals option is not disabling if the Time Interval is under 5minutes. Likewise, it should then enable if the Time Interval is switch to greater than 1minute, similar to the behavior of the Re-Sync Rate option.
6. Reported Issue:*Wifi turns off after an update when Wifi Wake lock is enabled. Backitude now checks to see if Wi-Fi is connected (and therefore not sleeping) before acquiring a Wi-Fi wake lock.
7.* Change: "Fire Update" does not update location if minimum required distance is configured and new location is not outside of the bounds of previous location. Fire Update, since it is a manual update, has been changed to not consider the minimum distance configuration and bypass this validation.
8. Issue: Steals and manual updates (Fire Update) are not resetting the Time Interval clock after a successful update. This issue has been resolved.
9. Issue: Minimum distance calculation not taking into consideration changes in accuracy. If accuracy changes greatly from one location poll to the next, the location centers could be drastically far apart although the device has not moved. Offsetting the accuracy changes will result in better results for calculating change in distance.
10. Change: Push Update notification labels have been updated.
Well thats a nice application. Just starting to use it.
I have a suggestion. As my phone goes at night in a kind of sleeping mode - Wifi off, 3G off, Wifi Off, etc. - i would like to have a function to disable Backitude for certain hours or much better a Tasker Plugin.
What do you think ?
Thomas_BA said:
Well thats a nice application. Just starting to use it.
I have a suggestion. As my phone goes at night in a kind of sleeping mode - Wifi off, 3G off, Wifi Off, etc. - i would like to have a function to disable Backitude for certain hours or much better a Tasker Plugin.
What do you think ?
Click to expand...
Click to collapse
Thanks, glad you like it so far!!! It's funny you mention that because I have two main goals for the summer. Tasker integration and off-line storage/sync. I looked into Tasker once before over the winter and it turned out to be a lot more work then expected so I put it off, as this is just sort of a hobby in my free time. But with baseball season upon us, I do a lot of coding with the games on. Go Sox!
In the mean time, there is a setting for wake locks in Advanced Settings for Backitude. You can turn disable the wake locks and Backitude will not run once your phone goes into sleep mode. This means that the gps will not run while sleeping..etc Hope this helps
Nice to read hat you planning a Tasker integration/plug-in.
Yes for the time being i have disabled both wake locks. Disadvantage is that my phone sleeps a lot . I have my display timeout set to 1 minute, so sometimes my phone is sleeping for an hour while walking around in Buenos Aires or Argentina. Anyway for now this is the only solution. Looking forward to your next developments.
Thanks.
Thomas_BA said:
Yes for the time being i have disabled both wake locks. Disadvantage is that my phone sleeps a lot . I have my display timeout set to 1 minute, so sometimes my phone is sleeping for an hour while walking around in Buenos Aires or Argentina.
Click to expand...
Click to collapse
Actually, it shouldn't be that bad. Backitude will only cease functioning without wake locks once the device goes into a "deep sleep mode." I am not sure about the specifics of when this occurs, but it's separate then just display timeout. Can even take up to an hour or more from what I read, so as long as you're using it every hour or so, it should continue functioning. Please post your findings though, I am intrigued now.
I will observe the pushing frequency to Latitude and keep you informed.
I've been using Backitude for a few months now.
However, even with WiFi Wake Lock enabled, it seems the accuracy of my updates does not improve. However, when I open google maps with WiFi already on, the accuracy is few meters (I work and live in a dense WiFi area).
Do you think that Backitude for some reason is not turning on the WiFi, or is WiFi based localisation not being picked up by latitude?
Thanks for a great app!
I want to create an "un-steal-able" phone.
Of course this is impossible, but I want to make it as difficult as possible for thieves to get away with it, and as easy as possible for me to find it.
Assumptions:
Phone has available call and text messaging service.
Phone has internet capabilities and "permanent" Internet access. (We will consider 2G, 3G, or 4G cellular access with a data plan to be permanent. Depending on an open WiFi network to be available at all times is unreliable).
Phone is on and has some charge in its battery. (If the phone is off, we can't do anything).
Phone has an accurate GPS receiver.
Requirements:
Software that relays GPS coordinates via an Internet connection. As a backup for when there is no cellular data signal, software that relay GPS coordinates via SMS
Software cannot be disabled or removed without authentication.
GPS on phone cannot be turned off without authentication (alternative: remote activation of GPS receiver via Internet or SMS)
Cellular data and/or WiFi cannot be turned off without authentication (alternative: remote activation of cellular data via SMS)
Where GPS signal can be used for macro location (within 10 to 30 meters), there must be some method of micro location (within a few feet).
Phone cannot be powered off via any button press, on-screen menu, or removal of battery
Phone cannot be wiped by on-screen menu or by computer cable connection
Now I have approached this solution from two starting points: the iPhone running iOS, or an Android-based smartphone. Both have different advantages and technical details. Let's look at how we can meet each of these requirements one by one.
iOS solution:
Unfortunately, if your iPhone is not jailbroken, your choices are not so great. But FindMyiPhone does do the basic job of relaying GPS coordinates. For a jailbroken iPhone, iCaughtu seems to be the best of the bunch from the research I have done and gives you a bunch of cool anti-theft features.
and
Using the options under Settings -> General -> Restrictions, you can disallow users from deleting apps AND from turning off location services. Of course, you can accomplish something similar by simple setting a password to access your phone. Unfortunately I haven't yet seen any program that allows you to remotely activate the GPS receiver on an iPhone.
Unfortunately I don't think there is anyway to prevent a thief from disabling your cellular connection other than setting a password on the whole phone. This has its advantages and disadvantages.* Similarly, I don't see any way to remotely activate the Cellular Data on an iPhone via SMS.
This is where things start to get more complex and we need to start thinking of actually modding the phone. So far the best RF tracking solution I have found (in terms of size, cost, and effectiveness) is a cheap chinese-made product that I picked up in Asia and cannot find a link to. This one is very similar http://www.amazon.com/Loc8tor-LTD-Loc8torLite-LOC8TOR-Lite/dp/B0012GMDC4/ but the reviews are meh. It is RF-based but does not really give any directional information. Once you are close to the RF transmitter (using the GPS coordinates), you can use the RF receiver to basically play a little game of hot and cold and walk in different directions all while watching if the signal gets stronger or weaker. I've done two real world field test with the similar device and was able to successfully find a purposely concealed bag in a slum twice.
But how do we get this into the phone? If you disassemble the transmitter, it is a very small circuit board, but most phones these days are already packed to the brim. Additionally, these units need power, so you would need to solder it into the phone's power system.
For the iPhone, concerns about a battery-based shutdown are reduced by its "sealed" battery compartment. Of course, with the right tools, someone can get to the battery. But this is not likely to happen quickly and will likely occur in a specific home or shop, from which we can get coordinate data. We only need to delay the thieves long enough to track them. The bad news is that preventing an iPhone from being shutdown via button press is much more difficult. Even with a lockscreen password, anyone can turn off an iPhone with a long power/sleep button press. I found a mod on Cydia that required a password before any shutdown, but it seemed it was only compatible with iOS 5 and I am running iOS 6.
This is the most challenging problem, as the most common method for any experienced phone thief to avoid detection is simply to power off the phone (or disable internet/3G) and as quickly as possible get to a computer and perform a complete wipe using any number of computer programs. A password on the phone can prevent access to the menu options for resetting factory default, but very little can prevent a thief from physically connecting the phone to a computer and wiping it.
Again I turn to physical modding. Would it be possible to modify the iPhone connector in such a way that the pins for power and charging would still work, but the pins for a data connection would require a specially modified cable to conect to the computer? Once my phone is through its initial setup and/or, most anything I need to do as far as data can be accomplished via WiFi. If needed, I would keep my special data cable at my home only and never take it out. But losing the ability to charge from any iPhone cable would be too debilitating to daily usage.
So I ask the experts: how can I improve on or solve these ideas? Is there software out there that I don't know about, either on the App Store or the Cydia Store? Are there ways to remotely control the iPhone's wireless and GPS functions via text? There should be. Any ideas on incorporating a tiny RF transmitter into the iPhone? Is there any way to prevent an iPhone from being shut down via the sleep button? Is there anyway to sabotage the lightning connector in an intelligent way to prevent a computer-based wipe?
*Advantages and Disadvantage of a phone-wide password. Honestly, I would rather not have a lockscreen password on my phone. I'm not a privacy freak and I don't care if a thief sees my pictures of e-mails or Facebook. If my phone is stolen, I'm hoping it is stolen by an idiot and that they WON'T try to wipe the phone. None of my solutions are foolproof. Everything in here is about delaying the thief long enough to track them. If an idiot steals a phone without a password, he MIGHT just use it as is. But if an idiot steals a phone and can't doing ANYTHING with it, he is going to take it to someone who will be smart enough to wipe it MUCH SOONER. Of course, the disadvantage is a loss of privacy, but iCaughtu has a cool solution for that too.
Android solution:
Android phones are much easier to root, and software solutions exist that will work reasonably well even for nonrooted phones. The best software I have seen is Avast! Anti-theft (part of Mobile Security), AndroidLost, and Cerebrus. All of these can report GPS coordinates, and with Avast! at least, you can also see coordinate history online and actually follow the path of your phone through the minutes, hours, and/or days. AndroidLost can report GPS coordinates online OR via SMS!
,
and
Avast! cannot be removed without a pin code. It can also prevent the user from during off Cellular Data and GPS. AndroidLost can be used to activate WiFi, Cellular Data and/or GPS via internet command OR via SMS. There are a ton of other internet-based and SMS commands in AndroidLost as well. Even without an active lockscreen password, a thief would be powerless to disable communication between the tracking software and you. In this department, Android truly outshines the iOS solution.
Getting an RF tracker into an Android-based phone has the same challenges as an iPhone.
I haven't found ANY glimmer of hope for a mode to disable shutdown via a long-button-press on Android. At least I found one mod for iPhone, even if it was the wrong iOS version. This is a huge gap in the goal of building an "unstealable" phone for both operating systems. As for the battery: Android phones come in many flavors. Many have removable batteries, so if you want to make life more difficult for thieves you'll have to limit yourself to a phone with a "sealed" battery compartment such as the HTC One.
A computer-based wipe via USB cable presents the same challenges as an iPhone EXCEPT that we're dealing with a more standard interface so that MIGHT make modding an easier task. Is there any way to make the microUSB jack more "proprietary" so that any normal USB cable can charge it but only a specially one can transmit data?
There is one other detailed I am interested in, but which is, I believe, currently impossible since it would require modifications to the lowest level of the phone's software, and that would be an auto-on feature. If the phone's battery dies for any reason (or any other shutdown that is not user-initiated), I would love for the phone to automatically power back on whenever it receives a new power source (either being plugged into the wall or getting a fresh battery).
Why am I so interested in doing this? I live in a third-world country and I travel to many other third-world countries. For 3 years, I guess I had good luck, but in the past year I have had three phones and a laptop stolen from me on the street and I have been punched in the face. Several of my friends have also had phones stolen during that time, and one friend was even kidnapped and robbed. Maybe crime is getting worse or maybe it is just coincidence. I have tried to be more careful each time, but one should not live life in fear or blame ones carelessness alone. It is time to fight back. Money, time, memories, self-respect, and peace of mind have been taken away from me and from people I care about. These thieves bear the real responsibility for these crimes. And the police and government here is largely unwilling, incapable, uncaring, and/or corrupt. Maybe I can help others as well.
Thanks for your suggestions and input.
Your thoughts are well expressed.
Hopefully something is coming fast to consumers.:good: