added cache and other things
working on UX