added programming logic is bullshit