*currently in progress, not finished*