changed implementation to not use the Constructor