is there any way we can avoid doing this? lots of coupling here