condensed code, ; doesn't work without spaces