added caching, user profile, tweaks