SO MUCH DOCUMENTATION (plus some small Followups I forgot to implement)