Would it be possible to remove the setter bypass if an entities constructor took the properties instead? This also might make it simpler to create entities from request data.