I suck at programming, but oh well