factored out all css,  so that it is more modular, readable and maintainable