no need for ugly cast constructors, just add a second argument