Rewrote the type methods because they were dumb