redesign the whole database and models