moved re-used compliance methods into shared controller