updated core.clj