add generic crud interface support