first pass at random implementation