implement builder => save