half way done converting to an obvserver pattern