version constructor