pretty big changes, still disorganized