Using implicit value object to make the methods typesafe and simplify usage