Updated after some great comments from @dead-horse