updated prototype with nitpicks