use embedded structs for easier dbmapping