lots of changes, stuff kinda works now