more extensive checks before creating models