major changes to the way this works
updates for testing