The constructor