event handling for stuff
cart stuff
merged and cleaned
cart stuff
merged