adding prototype generation