as I mentioned above, all this should go to constructor