works mostly now