Feature/adding profiles

Test this in clj for now. We'll then move it over when we set up cljs testing.