allowing constructor to be called without new