lib: decouple things