Working through functions, seems very redundant