added separate instruction phase