Add abstract shape interface