This still needs a hell lot of reworking, but still...