moving stuff out of the behavior because of SRP