Decoupled as much as possible. more still to do.