seperating custom and random device creation