add read sam function