works almost all