EFI Boxer | Page 5 | FerrariChat

EFI Boxer

Discussion in 'Boxers/TR/M' started by bjunc, Jan 16, 2024.

Tags:

This site may earn a commission from merchant affiliate links, including eBay, Amazon, Skimlinks, and others.

  1. INTMD8

    INTMD8 F1 Veteran
    Owner Silver Subscribed

    Jun 10, 2007
    6,757
    Lake Villa IL
    I'm certainly biased as I do efi calibration for a living (and use a dyno almost every day).

    For me it's still faster and easier to use the dyno.

    When I converted my 69 Charger to EFI I started with driving it around on the street, data logging, making changes but just seems to take forever.

    Once on the dyno I got more done in an hour than I did in 6 on the street.

    Also I had the max timing set where most hemi's make the most power (33deg) and was surprised to find almost 30rwhp retarding the timing 3 degrees. (Tried that after it lost horsepower going to 35deg).

    So, JMO but I think using a dyno is worth the cost and effort. Sometimes you learn things that wouldn't if just tuned on the street.
     
    2dinos and bjunc like this.
  2. Newman

    Newman F1 World Champ
    Consultant Owner Professional Ferrari Technician

    Dec 26, 2001
    14,448
    Canada
    Full Name:
    Newman
    I can't think of any engine where I would go to 35 degrees max timing, 32 is about it. Most of the cars I work on are not maximum effort racing applications and only some are EFI conversions. Between the wide band O2 and known good settings Im happy with the results, no complaints and no failures.
     
    2dinos and turbo-joe like this.
  3. INTMD8

    INTMD8 F1 Veteran
    Owner Silver Subscribed

    Jun 10, 2007
    6,757
    Lake Villa IL
    There are many engines that need even more than 35deg, just comes down to the efficiency of the combustion chamber. On the other hand, the newer stuff I do makes the most power naturally aspirated at 23-24deg total.
     
  4. bjunc

    bjunc Formula Junior

    Jun 18, 2023
    445
    Miami, FL
    Full Name:
    Robert
    Status update.

    Tuning

    I took the car around the block for the first time! I've only gotten to a very gentle 5k RPM. With the laptop in the passenger seat, I do a few laps around the block, come back, look at the logs, and tweak the numbers. I turn off the closed loop fuel (auto trimming of the fuel) so the numbers don't fool me into thinking I'm closer than I am. For the uninitiated, I'm looking at the difference between what the A/F is supposed to be at any given time, compared to what the O2 sensors say it is. If I am lean, it's because the engine's volumetric efficiency percent is too low (it's moving more air than I expect it to). I bump the VE%, and try again.

    My butt-dyno says the car is already better than it was with CIS, but far away from where it can be with just tuning. Curious if that's just placebo.

    One cool thing I found with the Motec is called "fuel film". Basically, I can tweak the way the ECU handles fuel pooling (on the walls and behind the valves). When there is a quick change in vacuum (stabbing the throttle), you can see a rich-spike-then-lean-dip, or a lean-spike-then-rich-dip. Tweaking the fuel film allows you to smooth this out. It helps with throttle response. I imagine other ECUs have this too, but I didn't know it was a thing.

    Idle

    There's more I can manually tweak here, but the ECU is actually really good at handling idle by dynamically adjusting the ignition timing. The problem is that it needs to know when you're actually idling – which requires throttle position. The idle control logic will turn off once the pedal goes beyond a set point (eg, 2%). Thankfully, I included the wires for a TPS in the harness if I went ITB in the future, so it's ready to go.

    The current plan is to use a "string pot" sensor mounted where the old RH WUR was – which hides the sensor under the RH plenum. I actually flipped the WUR bracket upside down when mocking it up. I'll yellow zinc the new bracket so it looks OEM. The string (steel wire) will attach to the throttle lever. Honestly, I don't love this setup as it feels a bit fragile, but it's a simpler design than working a traditional TPS into the existing throttle body. If I go to ITBs, then this TPS will get swapped out for a sensor attached to one of the ITB's butterfly valve. If I don't go to ITBs, then I might take the time to work a traditional sensor into one of the stock throttle bodies. So basically, it's a stop-gap (probably).

    Power

    This will freak some people out, but I've been running straight off the battery, commando style. Literally plugging in a 4 pin DTP connector each time I wanted to run the car, then unplugging when I'm finished. Seemed more important to see if I could even get the car to run than worrying about fuses. Anyway, I'm at a point where I need to address this. I was originally planning to go the traditional relay / fuse route. Instead, I decided to go modern with a Motec PDM15. It should be noted this is completely overkill for my needs and arguably a waste of money. But... I can monitor actual current consumption, program it (eg, retry tripped breakers) and it's very scalable (I could replace the entire car's relays / fuses with this). Plus, it looks cool. I will program it to send power to the ECU, injectors, coils, and O2 sensors when the key is on ignition (typical road car behavior).

    Misc

    Unfortunately, I found a ripped CV boot, so I am going to be somewhat limited in my road testing until I repair that. Probably a job for next weekend, which gives me this week to iron out the items above. I am thinking this whole phase of work will be nearly wrapped up by the end of the month, and I'll be able to drive around with an EFI converted 2 valve flat 12.
     
  5. turbo-joe

    turbo-joe F1 Veteran

    Apr 6, 2008
    9,525
    southwest Germany, France ( Alsace ) and Thailand
    Full Name:
    romano schwabel
    sounds all very good :)
     
  6. bjunc

    bjunc Formula Junior

    Jun 18, 2023
    445
    Miami, FL
    Full Name:
    Robert
    Status Update.

    Tuning
    I've done a few more laps around the neighborhood, pushing the car a bit more each time. The tune is good enough at this point that I can just go drive, come home, sit on the couch with a drink, look at the logs, tweak the VE, and push to the ECU the next time I drive. That said, there are areas that are hard to get the engine to for sustained periods of time that would be much easier to target on a dyno. So while I do think a street tune is probably fine, I'm interested to see how far my street tune is from a dyno tune.

    Timing / Burble
    To keep things simple, I set the timing to match that in the user manual (10 deg @ 1200 RPM, 22 deg @ 2000 RPM, 29 deg @ 5000 RPM, then maxing out with 32 deg @ 6300 RPM). This seems to be working well. The weights in my distributor were all-but seized to their posts, so it's hard to say whether the increase in performance is coming from EFI, or simply proper timing. I'm sure there are a lot of boxers out there (carb and injected) that would see a huge benefit from simply locking out the distributor's mechanical advance, and using a programmable MSD (or something similar). Once I'm on a dyno, I'll start tweaking timing based on the torque and knock numbers.

    In the meantime, as a guilty pleasure, I experimented with what the cool kids call a "burble tune". Basically, you retard the timing on overrun (when you let off the pedal at high vacuum, and high RPM). The more you retard, the more the burble. If you want to shoot flames out the back, you also increase the fuel. Otherwise, timing is unaltered (eg, idle, cruising, WOT, etc.). Many OEMs do this a little bit because consumers seem to like it (reminds them of carbs and/or race cars). I added a very subtle burble by retarding the timing on overrun (no change to fuel). So when you downshift, you get that slight burble. Don't judge me, I said it was a guilty pleasure.

    Idle

    I stuck with my initial design. I 3D printed a bracket out of PET-CF while I wait for the yellow zinc steel one to arrive and attached the string to the throttle lever (pics below). A quick calibration and I had throttle position. Once the throttle is at 0% and RPM is within 300 RPM of my idle target, the ECU takes over and adjusts timing to maintain idle. It works quite well. I still think I'd prefer a more conventional setup with a sensor attached to the throttle body, but this will do for now.

    Also, I backtracked on my thought of only using one idle set screw. It definitely works better when using both screws to help smooth out the balance. Even though the plenums are connected, the bank with the open idle set screw is slightly more lean (I know, seems obvious). It's easy enough to look at the laptop screen, and turn each idle screw until both banks read the same lambda.

    Power

    I installed the PDM and everything is working great. The PDM is never "off". Rather, it's in standby mode until a digital switch tells it to send power somewhere. I repurposed the ignition wire previously used for the ignition coil as the PDM switch. So now, when they key is on ignition, I have power to the ECU, coils, injectors, and O2 sensors. Basically, the car starts / stops the way you would expect.

    Side note, with the fuse box issues these cars have, I can absolutely see the value in swapping out the relays and fuse box for a PDM. You'd never see it, it'd be reversible, and you'd be able to see exactly what current is going where.

    Air Temp

    I installed the air temp sensor where the old CIS cold-start injector was. I'm finding that intake temps are usually 65 C; which is not horrible, but not great. I imagine that is mostly due to the filters being directly under the plenums. I will start to experiment with ducting to pull air from elsewhere, to see how much cooler it can get. I won't know the effect on power until I'm on a dyno, but I am still curious. I think only after I've measured the effect of pulling air from different places, will I finalize the design. Ie, I'm not going to add a bunch of clutter to the engine bay for marginal improvement in air temps.

    Cleanup

    At this point, the car is drivable, and I feel comfortable claiming the car is better than it was with CIS and mechanical ignition (both performance and aesthetics – albeit aesthetics are more subjective). I have a punch list of cleanup items (wiring, brackets, hoses, etc.), but I'm on the tail end of this phase. I can drive around and enjoy the car while I tidy everything up.

    I have a feeling that it'd be worth it if I simply stopped here, but it's nice to know that I now have the ability to upgrade the engine's internals without having to worry about the constraints / limitations of CIS. Then of course, there's the idea of going to ITBs for the sound and aesthetics. I may need to take a short breather before jumping into that one.

    Image Unavailable, Please Login Image Unavailable, Please Login
     
  7. pshoejberg

    pshoejberg Formula 3
    Silver Subscribed

    Dec 22, 2007
    1,818
    Denmark
    Full Name:
    Peter H
    Great results in very shortly time - very nice. Thanks for taking the time to share the process in such details. It’s very interesting reading.

    best, Peter
     
    bjunc likes this.
  8. Supernaut

    Supernaut Karting

    Dec 3, 2019
    152
    Annapolis MD
    Full Name:
    John Panek
    Love it!!! One more arm twist and I'm going to copy your setup on my car...
     
    71veedub and bjunc like this.
  9. 2dinos

    2dinos F1 Rookie

    Jan 13, 2007
    3,020
    Awesome job! Also, this saves fuel and lowers emissions. No spraying in fuel while the intake valve is closed.

    Questions you may not have gotten to:
    How does it pull near redline? I've heard some criticism about the boxer pull falling off when the revs get up there. I thought this was directly related to all of the neglected distributor advance mechanisms. You have 32° advance @ 6,300 revs, and this is what the engineers where the magic happens call for. So does it pull hard up to redline?
     
  10. bjunc

    bjunc Formula Junior

    Jun 18, 2023
    445
    Miami, FL
    Full Name:
    Robert
    Thanks! Not done yet!

    Yes, but to be honest, that wasn't really a motivating factor. There's a lot more that I can tune if that was a higher priority. Eg, tuning for leaner A/F during cruise, cutting injectors on overrun, and a few other OEM tricks would help conserve fuel.

    That's right, I am running sequential injection, so the injector pulses are timed along with ignition. Funny enough, some teams intentionally spray on a closed valve as a method for cooling the valve.

    Luckily, I haven't noticed any issues from installing modern injectors where the old CIS injectors were (to me, that was a bit of an unknown). Nor does it seem to matter that I kept the original fuel pump, accumulator, and filter. It's essentially the same fuel path, just with a modern distributor and injectors.

    Ive been slowly working my way up to that. I'm essentially stress testing the components I've added, along with the tune. Eg, will the sync triggers hold up, fuel pressure, air temp, coolant temp, coil voltage, injector duty cycle, incorrect VE% at high RPM causing detonation, etc..

    So far, I've only taken it to 5500 RPM. The car feels great, and everything appears to be holding up fine. There's far more pull than there was before, but that might be due to just proper timing. Having a sticky / seized mechanical advance is the difference between feeling like you're driving a heavy SUV and a sports car. I imagine a lot of owners are in similar situations as I was, and don't even know it. If you think the inside of a dizzy cap gets nasty, just imagine what's inside the mechanical advance area. Mine looked like it was recovered from a shipwreck. Once on a dyno, I will tune the timing for max torque (while staying safe from knock). Curious how far off from the manual I'll end up.

    Can't say just yet. I will say the car likes running richer than stoich. Also, I am finding that the engine is reaching max VE% lower than I expected. I am guessing this is the cams. Basically, the engine is at near 100% efficiency (not power) around 3750 RPM and is hanging out around there as far as I've taken it (5500). This makes sense with Paul's point about max power coming in a lot sooner than the actual red line. I have a (maybe ignorant) theory that the fuel enrichment from K-Jet is not ideally what this engine wants – effectively running these engines leaner at high RPM. With EFI, I can simply program the injectors to dump fuel in at high RPM to keep the party going. Maybe someone with more K-Jet experience can chime in on just how linear the fuel delivery is. Seems most CIS A/F tuning is done at idle, and we just assume it'll be good at higher RPM.
     
  11. turbo-joe

    turbo-joe F1 Veteran

    Apr 6, 2008
    9,525
    southwest Germany, France ( Alsace ) and Thailand
    Full Name:
    romano schwabel
    the inlet valves have not to be cooled. they spray because the fuel already get gas when touching the valve and so the fuel air mixture already starts already before the mixture comes into the cylinder

    right, and there you can not change anything. it is given by the form of the "hole where the big plate is moving" ( sorry, not know how to name it ;( )

    for my competition with the 2 turbos it is important that I can take the ignition advance back when I go with higher boost and also can enrich the mixture what is not possible with CIS and the original ignition

    what please is: VE%
     
  12. bjunc

    bjunc Formula Junior

    Jun 18, 2023
    445
    Miami, FL
    Full Name:
    Robert
    VE = Volumetric Efficiency.

    Basically, if the engine is one big 4.9L air pump, then 100% VE is when the engine is at its most efficient in moving air from intake to exhaust. Anything substantially greater than 100% VE would typically come from boosted applications.

    Rather than measuring the exact amount of air entering an engine to determine the necessary amount of fuel, the ECU calculates the amount of air that should be entering an engine based on the given volumetric efficiency at that particular intersection of RPM and vacuum.

    For example, if I estimate that the engine has 80% VE while cruising, but my measured A/F from the O2 sensors is showing slightly leaner than my desired A/F, then that means the engine is moving more air than I think, and therefore the VE% is actually higher (maybe 83%). So part of the tuning process is learning what the VE% is at 500 RPM and 10 kPa increments. In reality, I can determine VE at key areas, and then interpolate the in-between. For the street tune, I am intentionally over estimating VE% which will result in richer A/F, then dial back the VE until the O2 sensors are reading my desired A/F.

    So my point above is to say that I am seeing higher VE at lower RPM and lower vacuum than I expected. This doesn't exactly equate to torque / power, but I believe it often loosely correlates. Meaning, my engine would reach peak torque at lower RPM, and then plateau or trail off – as Paul said happened when he dyno'd his car.

    Apologies if that's overly verbose.
     
  13. turbo-joe

    turbo-joe F1 Veteran

    Apr 6, 2008
    9,525
    southwest Germany, France ( Alsace ) and Thailand
    Full Name:
    romano schwabel
    great explaining robert, I have of course known this before but not have know the english shortcut VE.
    so this ferrarichat here is also very good to improve my english ;)
     
    bjunc likes this.
  14. boxerman

    boxerman F1 World Champ
    Silver Subscribed

    May 27, 2004
    19,716
    FL
    Full Name:
    Sean

    Interesting theory. If so the flatness of power pas 5k ort 6k is not just the cams but the ability to deliver fuel from the cis? If so when you get her tuned right should be significantly stronger up top.

    Years ago carobu did a carbed 512 with pistons and cams etc. they reported 475 hp. the 512 race cars back in the day had a reported 450 with mechanical injection.

    Will be interesting to see how much the efi lifts the stock setup, and more importantly power at various revs, as we know powerband it at least as important as peak revs. If the car can make say 330-350 hp but also still in the 5.5-6.5 or 5-7k rev range that a massive change in real on road performance.

    Exciting project.
     
  15. bjunc

    bjunc Formula Junior

    Jun 18, 2023
    445
    Miami, FL
    Full Name:
    Robert
    That's my theory, anyway. It's my understanding that CIS does have some enrichment capability (I believe through the WUR / vacuum), but it's pretty crude. I have a feeling that there's more juice that can be squeezed out of these cams by dialing in timing and fuel.

    It's my understanding that the LM engines were not nearly as built-up as one might think. More like the road cars were severely neutered. Experts please correct me, but it seems the LM cars had a modest bump in compression, essentially P6 cams, and Lucas injection (maybe head porting too?). That's not a crazy formula to replicate (or improve).

    Also very interested. I wouldn't regret it because I plan on upgrading intakes and internals anyway, but it'd be kind of sad if all this resulted in a few measly HP.
     
    boxerman likes this.
  16. boxerman

    boxerman F1 World Champ
    Silver Subscribed

    May 27, 2004
    19,716
    FL
    Full Name:
    Sean
    For what tis worth the porche guys report a 9.2% gain going from CIS to EFI on an otherwise stock car. Course they have a potentially less restrictive intake to start with, and I have not seen the power curves.
     
  17. Newman

    Newman F1 World Champ
    Consultant Owner Professional Ferrari Technician

    Dec 26, 2001
    14,448
    Canada
    Full Name:
    Newman
    I would imagine there was porting done to the LM cars. The intake port is the cork in the system even with ITB's. The number 6 and 7 primary exhaust manifold pipes are the cork on the exhaust side. 20HP gain reworking those two pipes. Cams with 300 lift don't leave much juice to squeeze but with negative 5 degrees of overlap on the CIS cars how could it possibly breathe at high rpm?
     
    bjunc and turbo-joe like this.
  18. turbo-joe

    turbo-joe F1 Veteran

    Apr 6, 2008
    9,525
    southwest Germany, France ( Alsace ) and Thailand
    Full Name:
    romano schwabel
    what please is ITB?
     
  19. Supernaut

    Supernaut Karting

    Dec 3, 2019
    152
    Annapolis MD
    Full Name:
    John Panek
    Individual (or Independent) throttle body - Joe please tell us the German equivalents so we can learn as well?

    See 7:01 here:

    Robert, maybe ITB after cams and pistons?
     
    2dinos and turbo-joe like this.
  20. turbo-joe

    turbo-joe F1 Veteran

    Apr 6, 2008
    9,525
    southwest Germany, France ( Alsace ) and Thailand
    Full Name:
    romano schwabel
    in german: einzeldrosselklappen
     
    skl63 and Supernaut like this.
  21. bjunc

    bjunc Formula Junior

    Jun 18, 2023
    445
    Miami, FL
    Full Name:
    Robert
    #121 bjunc, Mar 25, 2024
    Last edited: Mar 25, 2024
    Status update.

    Nothing too exciting, except that everything is holding up as I stress test the car. I've cleaned up some of the wiring, and added a fuel pressure sensor on the second bank (I was using one sensor and one gauge, now using two sensors). The TPS bracket is in the mail, along with some other bits from SendCutSend.

    MAP
    I modified the intake balance by moving the MAP sensor between the larger intake ports previously used for the AAV. I blocked off the smaller ports I was originally using (previously used for the VLD). Honestly, I don't think it made much of a difference, but it does clean up the area behind the bank 2 plenum which was getting a bit busy.

    Fuel Pressure Brackets
    This is an area I haven't been super happy with. I am mounting the FPR where the old CIS distributor was, and I'm trying to thread the needle between leveraging existing mounting points, logical placement, and aesthetics. I've gone through a handful of 3D printed iterations, and now I'm moving into metals. I have a few versions of the design in the mail. Attached is the current version. A yellow zinc version arrives tomorrow, but I have feeling that might be too blingy. I also have an aluminum one coming later in the week that might be a better fit as it could blend in with the other aluminum panels. I'll post pics for everyone to weigh in on.
    Image Unavailable, Please Login
    Image Unavailable, Please Login

    Tuning
    I've now taken the car up over 6k RPM a handful of times and everything appears solid. The VE% does start to decrease, but I only know that because I see it on the laptop. My butt-dyno says the car wants to keep going. Once the car is properly dyno'd, I'll probably need someone with more seat time in various boxers to weigh in (Sean?). I'm not qualified to say an EFI Boxer is more X or less Y than Z version. Side note, the Nouvalari "Sport" exhaust I have sounds pretty nice at 6k. It sounds a bit boring at lower RPM, but I think a big part of that is just the cams being so mild.

    I will say that the timing is spot on, despite using sync triggers off the cams. OEMs do this, but most aftermarket / club / motorsport installations go for a trigger off the crank claiming things like stretch in the timing belts would throw off timing. I have a feeling these claims are a bit exaggerated, and they don't quite understand how fast the triggers fire to reconcile differences between what the ECU is expecting vs what it is seeing. Honestly, I'm not going to lose sleep doing it this way. I may address it later on.

    If anyone's curious, attached is a screenshot from "M1 Tune", Motec's main tuning software. There are other utilities / programs for configuring the PDM, programming CAN, viewing logs / telemetry, etc.. This "worksheet" is one I created to see the things I care about while driving. Notice the timing at 5k. By the way, "steering pressure" is actually the second fuel pressure sensor. I would either need a custom package, or a "build" license to modify the package and rename it (along with anything else custom I wanted to do). A bit annoying, but that's their business model.

    Image Unavailable, Please Login

    Misc.
    Next up, I need to hook up the tach, knock sensors, and finish the cleanup (wiring, brackets, etc.). Then, I'll schedule time on a dyno and see what all this got me. In the meantime, the street tune is enough to confidently bounce around town.
     
  22. bjunc

    bjunc Formula Junior

    Jun 18, 2023
    445
    Miami, FL
    Full Name:
    Robert
    I have a feeling it makes more sense to do the ITBs before the internals. Reason being, while I'm not sure the stock intake (plenums, throttle bodies, ports) are overly limiting for stock cams, I'm pretty sure they would be for upgraded internals. Also, it'd make it easier to port match the heads to the manifolds. Although, I'm sure my wife would appreciate it if I took a break and gave the car to Paul for a bit

    Funny you posted that specific video. I saw that the other day, and noticed he used high temp carbon fiber nylon for the intakes that he printed on a Bambu (same one I have), and simply glued them to the flanges he had cut via SendCutSend. He's not the first person I've seen do this, and it would make prototyping go much faster before having them CNC'd. Although, I have the added complexity of dealing with the coolant as well; which I've not seen done before. I know OEs are using plastic for coolant pipes these days, but that sounds risky to me (even if it is temporary).
     
  23. bjunc

    bjunc Formula Junior

    Jun 18, 2023
    445
    Miami, FL
    Full Name:
    Robert
    You know, I wouldn't be shocked if that was the case with the BBi as well. There's just so much more precision that can achieved with EFI vs mechanical advance and CIS. I guess we'll find out soon enough!
     
    boxerman likes this.
  24. boxerman

    boxerman F1 World Champ
    Silver Subscribed

    May 27, 2004
    19,716
    FL
    Full Name:
    Sean
    #124 boxerman, Mar 25, 2024
    Last edited: Mar 25, 2024

    Yes, what you speculated previously, which is why i looked up some pcar numbers on these CIS-EFI conversions. .

    Besides the power increase, more interesting would be to see an expanded power curve, regardless of peak power, which you think will be the case with fueling and timing, ie cams not solely to blame. . If these cars stock make a real 320-340 hp, but its falling off fast by 5500-6k rpm, imagine the on road performance gain carrying say a 320 hp to 7k rpm, yuge, that's probably 70-100hp more than they make at 7k rpm now, another 1000 revs of drive, no more short shifting just to stay in powerband.

    Lots of groovy looking ITB options too. I wonder though with pistons cams and efi whether ITBs will add much beyond cosmetics?

    Based on 308 GTBI psitons and cam numbers, its speculated that pistons and cams brings a BBI with CIS to around 400hp. Would EFI lift that number higher, undoubtably yes for the reasons stated, not to mention one could do more with cams and efi and you get the bigger power spread.

    In theory then the next limiting factor is the plenums/runners, although they must help drivability and low down Tq with efi cams etc? . Just speculation stock plenums efi pistons and cams gotta come to 430-450 hp? ITbs add maybe another 30-40 or so but loose something down low?Corse maybe th top end feels like Newman's Koning then just with lots more go, and efi still means its drivable below 3k.

    The advantage of keeping the stock plenums is the car is still basicaly stock looking. Although when looking at tasteful restomod prices, or a moto technique 308 done right the efi ITBs can enhance the value of a 250k BBI.

    Great project, love it.
     
  25. boxerman

    boxerman F1 World Champ
    Silver Subscribed

    May 27, 2004
    19,716
    FL
    Full Name:
    Sean
    Love this look, so well done an integrated.
    Throw in efi ITBs pistons and cams, you're talking probably the best of the classic ferraris ever , short of a 288 and thats hampered by turbos.

    [​IMG]
     
    bjunc likes this.

Share This Page