works better, but not completely