Almost complete with implimentation. Still need to do some
bug fixing....