Either I'm a moron or clang does not support covariant return types...