basic structure complete
all complete, basic, to be extended later