seperate and improve helper classes