reorganised to fixed sizing problem, this is not c++.