a new constructor, useful in some cases