further segregation of logic