better layout and file structure changed