ported more
merged