shitty code, enjoy