more sensible markup and classes