use GridLayout instead of nested layouts and clean up