modularized persistence layer and presentation layer