updated for buffered basic shapes