Added a new random access interface and got rid of the IO interface