too much logic in a method we need to split it out