refactor and add landscape layout