most of the basic functionality and some css