split dartemis into two libraries: one that works without mirrors and another one that uses mirrors