initial commit, stuff more or less works but is shitty