add persistable interface