updated based on some recommendations