Everything implemented,still works cleaning up now