made each object's input class anonymous since it should just be used directly