Explicit implementation of the data constructors