use erb template instead of duplicating huge html
raise error when setter can't be extracted