another day, another fkn circular dependency in this mess of a project. can't anyone just write a library that doesn't require 12 other libraries just to work?