All Working

Still need testing (especially fault handling), cleanup functions,