Shape should be abstract, right?