remove the need to provide empty instance upfront