basic functionalities + layout skeleton