Making multiple redefinitions on the same target work as expected; closes #2
Make redefinitions atomic/thread safe; closes #3