proper probablistic random graphs and other utilities that will need refactoring into a utilities file later