get it all working in separate classes