added default save implementation