fixed for irregular shape