Hopefully the fewer conditional checking, will make things more efficent