basic structure, with some design