almost working, now awiting testing