It's buggy and slow, but its kinda working