works better but not quite right