changes due to the fact that Size has now become a template class