abstracted out shapes