implemented first that takes object as second argument