Over a year ago, Google announced yet another round of Nexus devices, which launched with the most current version of Android at that time: Marshmallow. Unfortunately, we didn’t know it, but those would be the last of the Nexuses. A year later, Google would unveil two new smartphones with a new brand-name: Pixel.

The Nexus 6P, the more expensive, nicer of the two Nexuses, is still a decent smartphone, and many feel like they don’t even need to upgrade at the moment.

Yet the Nexus 5X, which was popular at first, was soon criticized for being slow, under-powered, and generally unsatisfying. Some have even called it a “turd” phone. It’s camera is unimpressive, processor sluggish, and all-around smartphone experience disappointing.

But I bought the Nexus 5X last month… despite being able to easily afford the 6P. And in fact, I had even previously owned the Nexus 5X and had hated it. Why in the world, then, did I buy the same device I had owned and loathed?

There were two reasons.

First, I bought it because it was cheap. It only cost $250, and as I had just sold my OnePlus 3 (a fantastic phone, by the way) and was looking for a replacement. Instead of going for a 2016 flagship like the Samsung Galaxy S7 or the Pixel XL, I decided I would wait, buy a cheap phone, then upgrade sometime near the end of 2017. Secondly, I had gotten into installing custom ROMs with my OnePlus 3, and I believed that I could hack my phone into something usable, maybe even satisfying.

So I bought it.

I tried many ROMs, from CyanogenMod/LineageOS, to SAOSP, and even AOSPA (Paranoid Android), but battery life and general performance were still atrocious. I landed on a third-party ROM called “PixelROM” which basically gave me all the features of the Google Pixel phones on my Nexus 5X. It enabled the Google Assistant, Pixel Launcher, and much more. Though the PixelROM didn’t fix the performance and battery life completely, it did improve them a little bit. It wasn’t until I felt comfortable with installing custom kernels that I started to see a real leap in performance and battery life.

If you aren’t familiar as to what custom kernels are, here’s a quick explanation. Android, as you probably know, is based on Linux and its kernel. A kernel is “the most basic level or core of an operating system of a computer, responsible for resource allocation, file management, and security,” according to the dictionary. The benefits of installing a custom kernel are that they are often well-optimised for the device, and they also allow for custom CPU governors, which can better manage the CPU. That, of course, translates into better battery life and performance.

I installed a popular custom kernel called ElementalX. Its well-known in the Android “flashaholic” community, and it supports many devices, including the Nexus 5X.

Once I installed a CPU governor called “GlassFish,” I immediately noticed that animations were smother, apps opened faster, and I had (you guessed it): better battery life.

This incredible combination of software with the PixelROM and custom kernel with ElementalX have made the phone a satisfying daily driver. Although it is not lightning fast due to physical hardware restraints, the modified software has freed the device to perform well in 2017.