updated based on review comments