added all rights reserved