Adapted constructor