change logic in shape