add unit and acceptance tests