added better checking for updates
refactoring within core classes