added few improvement