altered impl
post-merge