basic layout and framework