basicallyy more work than i've done in months, code-wise