object creation is abit of a hot-path, we should likely be careful about to many extra method invocations.