construct classes now take name and id arguments