add shape read functions