in progress
in progress
remove unnecessary fanciness
fully functional logic