work-in-progress on proper subfunctions