made interface for shape cosntructor more consistent, now accept an array as a default