Documentation and annotations added