tidy up the constructor