generated scaffold because logic