Reworking absolute naming
Adding better support for prefered providers
(working without compile, so it'll probably break)