dimensions can now be changed
comments modified after MACROs added
replaced default array with vector