Added DAO pattern to models; Remove primitive obsession in 'create' and 'update' methods