refactor to allow for changing cases while it's running
update documentation + rename file