fleshed out predicates, added simple background worker