model constructor refactoring
add populate method