Some refactoring. itemWidth is now used as minimum item width when using flexibleWidth