Updated, still working on a working version