added shape concept