almost have support for getting random data