adding background functionality, see comments for options