before merge
mostly merged