refactor to replicate how we currently operate