do we really need these intermmediate variables?