Why isn't this just an ```abstract``` method?