must read contracts first and then devices
update for v0.3.5