Added some functionality, still working on next()