big changes, should fix it