first stab at actual multi implementation (currently still holds vm lock)