lots of changes
major changes, it kinda works now
merge fix